import axios from 'axios'
import BaseApi from '@/api/BaseApi'
import config from '@/config'

/**
 * 区域接口
 */
export default class extends BaseApi {
  /**
   * 获取基础路径
   *
   * @return 基础路径
   */
  static basePath() {
    return (config.services.basebiz || '') + '/region'
  }

  /**
   * 查询区域树状数据
   *
   * @param parentId
   *            上级区域编号
   * @return 请求对象
   */
  static tree(data) {
    return axios.get(`${this.basePath()}/tree`, { params: data })
  }

  /**
   * 区域上移
   *
   * @param data
   *            区域信息
   * @return 请求对象
   */
  static up(data) {
    return axios.put(`${this.basePath()}/up`, data)
  }

  /**
   * 区域下移
   *
   * @param data
   *            区域信息
   * @return 请求对象
   */
  static down(data) {
    return axios.put(`${this.basePath()}/down`, data)
  }

  /**
   * 获取设备绑定信息
   *
   * @param params
   *            查询参数
   * @return 请求对象
   */
  static deviceBindInfo(params) {
    return axios.get(`${this.basePath()}/deviceBindInfo`, { params })
  }

  /**
   * 绑定区域设备关系
   *
   * @param data
   *            提交数据
   * @return 请求对象
   */

  // 根据区域id获取区域层级的最后一级编码
  static getParentRegionId(params) {
    return axios.get(`${this.basePath()}/getParentRegionId`, { params })
  }

  static bindDevice(data) {
    return axios.post(`${this.basePath()}/bindDevice`, data)
  }

  static delByIds(id) {
    return axios.delete(`${this.basePath()}/delByIds/${id}`)
  }

  static addOrgRegion(data) {
    return axios.post(`${this.basePath()}/addOrgRegion`, data)
  }

  static regionIdsByOrgId(params) {
    return axios.get(`${this.basePath()}/regionIdsByOrgId`, { params })
  }

  static delByRegionId(params) {
    return axios.delete(`${this.basePath()}/delByRegionId`, { params })
  }

  static expTpl(params) {
    return axios.get(`${this.basePath()}/expTpl`, {
      params,
      responseType: 'blob'
    })
  }

  static expData(params) {
    return axios.get(`${this.basePath()}/expData`, {
      params,
      responseType: 'blob'
    })
  }
}
